home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / system-config-printer / ToolbarSearchEntry.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2009-10-28  |  6KB  |  159 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import gobject
  5. import gtk
  6. import HIG
  7. from gettext import gettext as _
  8.  
  9. class ToolbarSearchEntry(gtk.HBox):
  10.     __gproperties__ = {
  11.         'search_timeout': (gobject.TYPE_UINT, 'search timeout', 'search signal rate limiter (in ms)', 0, 5000, 300, gobject.PARAM_READWRITE) }
  12.     __gsignals__ = {
  13.         'search': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [
  14.             gobject.TYPE_STRING]),
  15.         'activate': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []) }
  16.     
  17.     def __init__(self):
  18.         self.entry = None
  19.         self.timeout = 0
  20.         self.is_a11y_theme = False
  21.         self.search_timeout = 300
  22.         self.menu = None
  23.         gtk.HBox.__gobject_init__(self)
  24.         self.set_spacing(HIG.PAD_NORMAL)
  25.         self.set_border_width(HIG.PAD_NORMAL)
  26.         settings = gtk.settings_get_for_screen(self.get_screen())
  27.         theme = settings.get_property('gtk-theme-name')
  28.         if not theme == 'HighContrast':
  29.             pass
  30.         self.is_a11y_theme = theme == 'LowContrast'
  31.         label = gtk.Label()
  32.         label.set_text_with_mnemonic(_('_Filter:'))
  33.         label.set_justify(gtk.JUSTIFY_RIGHT)
  34.         self.pack_start(label, False, True, 0)
  35.         self.entry = gtk.Entry()
  36.         if gtk.__dict__.has_key('ENTRY_ICON_PRIMARY'):
  37.             self.entry.set_icon_from_stock(gtk.ENTRY_ICON_PRIMARY, gtk.STOCK_FIND)
  38.             self.entry.set_icon_from_stock(gtk.ENTRY_ICON_SECONDARY, gtk.STOCK_CLEAR)
  39.             self.entry.set_icon_sensitive(gtk.ENTRY_ICON_SECONDARY, False)
  40.             self.entry.set_icon_activatable(gtk.ENTRY_ICON_SECONDARY, False)
  41.         
  42.         label.set_mnemonic_widget(self.entry)
  43.         self.pack_start(self.entry, True, True, 0)
  44.         self.entry.connect('changed', self.on_changed)
  45.         self.entry.connect('focus_out_event', self.on_focus_out_event)
  46.         self.entry.connect('activate', self.on_activate)
  47.         self.entry.connect('icon-press', self.on_icon_press)
  48.  
  49.     
  50.     def do_get_property(self, property):
  51.         if property.name == 'search_timeout':
  52.             return self.search_timeout
  53.         raise AttributeError, 'unknown property %s' % property.name
  54.  
  55.     
  56.     def do_set_property(self, property, value):
  57.         if property.name == 'search_timeout':
  58.             self.search_timeout = value
  59.         else:
  60.             raise AttributeError, 'unknown property %s' % property.name
  61.         return property.name == 'search_timeout'
  62.  
  63.     
  64.     def clear(self):
  65.         if self.timeout != 0:
  66.             gobject.source_remove(self.timeout)
  67.             self.timeout = 0
  68.         
  69.         self.entry.set_text('')
  70.  
  71.     
  72.     def get_text(self):
  73.         return self.entry.get_text()
  74.  
  75.     
  76.     def set_text(self, text):
  77.         self.entry.set_text(text)
  78.  
  79.     
  80.     def check_style(self):
  81.         if self.is_a11y_theme:
  82.             return None
  83.         bg_colour = gtk.gdk.color_parse('#f7f7be')
  84.         fg_colour = gtk.gdk.color_parse('#000000')
  85.         text = self.entry.get_text()
  86.         if len(text) > 0:
  87.             self.entry.modify_text(gtk.STATE_NORMAL, fg_colour)
  88.             self.entry.modify_base(gtk.STATE_NORMAL, bg_colour)
  89.         else:
  90.             self.entry.modify_text(gtk.STATE_NORMAL, None)
  91.             self.entry.modify_base(gtk.STATE_NORMAL, None)
  92.         self.queue_draw()
  93.  
  94.     
  95.     def on_changed(self, UNUSED):
  96.         self.check_style()
  97.         if self.timeout != 0:
  98.             gobject.source_remove(self.timeout)
  99.             self.timeout = 0
  100.         
  101.         has_text = self.entry.get_text_length() > 0
  102.         if has_text:
  103.             self.timeout = gobject.timeout_add(self.search_timeout, self.on_search_timeout)
  104.         else:
  105.             self.on_search_timeout()
  106.         if gtk.__dict__.has_key('ENTRY_ICON_PRIMARY'):
  107.             self.entry.set_icon_sensitive(gtk.ENTRY_ICON_SECONDARY, has_text)
  108.             self.entry.set_icon_activatable(gtk.ENTRY_ICON_SECONDARY, has_text)
  109.         
  110.  
  111.     
  112.     def on_search_timeout(self):
  113.         self.emit('search', self.entry.get_text())
  114.         self.timeout = 0
  115.         return False
  116.  
  117.     
  118.     def on_focus_out_event(self, UNUSED_widget, UNUSED_event):
  119.         if self.timeout == 0:
  120.             return False
  121.         gobject.source_remove(self.timeout)
  122.         self.timeout = 0
  123.         self.emit('search', self.entry.get_text())
  124.         return False
  125.  
  126.     
  127.     def searching(self):
  128.         return self.entry.get_text() != ''
  129.  
  130.     
  131.     def on_activate(self, UNUSED_entry):
  132.         self.emit('search', self.entry.get_text())
  133.  
  134.     
  135.     def grab_focus(self):
  136.         self.entry.grab_focus()
  137.  
  138.     
  139.     def set_drop_down_menu(self, menu):
  140.         if not gtk.__dict__.has_key('ENTRY_ICON_PRIMARY'):
  141.             return None
  142.         if menu:
  143.             self.entry.set_icon_sensitive(gtk.ENTRY_ICON_PRIMARY, True)
  144.             self.entry.set_icon_activatable(gtk.ENTRY_ICON_PRIMARY, True)
  145.             self.menu = menu
  146.         else:
  147.             self.entry.set_icon_sensitive(gtk.ENTRY_ICON_PRIMARY, False)
  148.             self.entry.set_icon_activatable(gtk.ENTRY_ICON_PRIMARY, False)
  149.             self.menu = None
  150.  
  151.     
  152.     def on_icon_press(self, UNUSED, icon_position, event):
  153.         if icon_position == gtk.ENTRY_ICON_SECONDARY:
  154.             self.set_text('')
  155.             return None
  156.  
  157.  
  158. gobject.type_register(ToolbarSearchEntry)
  159.